Java Technologies JSON থেকে Java Object এ রূপান্তর (Deserialization) গাইড ও নোট

265

JSON (JavaScript Object Notation) একটি সাধারণ, লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা মানুষের জন্য পড়তে সহজ এবং মেশিন দ্বারা দ্রুত পার্স করা যায়। Java প্রোগ্রামিং ভাষায় JSON ডেটা কার্যকরভাবে প্রক্রিয়া করার জন্য সাধারণত Deserialization বা JSON থেকে Java Object এ রূপান্তর প্রক্রিয়া ব্যবহৃত হয়। এই প্রক্রিয়ায় JSON স্ট্রিংকে Java Object-এ রূপান্তর করা হয়, যা আপনার Java কোডে ডেটার সাথে কাজ করতে সহায়ক হয়।

JSON থেকে Java Object এ রূপান্তরের প্রক্রিয়া


Deserialization হচ্ছে JSON ফরম্যাটের ডেটা কনভার্ট করা Java Object-এ। এই প্রক্রিয়ায় Java Object তৈরি করা হয় যেটি JSON ডেটার প্রতিটি key-value pair থেকে মান গ্রহণ করে।

Java তে JSON থেকে Object-এ রূপান্তরের জন্য দুটি জনপ্রিয় লাইব্রেরি ব্যবহৃত হয়:

  • Jackson
  • Gson

এখন আমরা এই দুটি লাইব্রেরি ব্যবহার করে JSON থেকে Java Object-এ রূপান্তরের প্রক্রিয়া দেখব।

১. Jackson ব্যবহার করে JSON থেকে Java Object রূপান্তর


Jackson একটি শক্তিশালী লাইব্রেরি যা JSON থেকে Java Object-এ রূপান্তর এবং Java Object থেকে JSON এ রূপান্তর করার জন্য ব্যবহৃত হয়। এর মাধ্যমে JSON ডেটাকে Java Object-এ Deserialization করা যায় খুব সহজে।

উদাহরণ:

ধরা যাক আমাদের একটি Person ক্লাস আছে, যা JSON ডেটার সাথে ম্যাপ হবে।

public class Person {
    private String name;
    private int age;

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

এখন, JSON স্ট্রিংকে এই Person ক্লাসের একটি অবজেক্টে রূপান্তর করা যাক।

import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonExample {
    public static void main(String[] args) throws Exception {
        // JSON String
        String jsonString = "{\"name\": \"John Doe\", \"age\": 30}";

        // Jackson ObjectMapper ব্যবহার করে JSON থেকে Java Object এ রূপান্তর
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(jsonString, Person.class);

        // Java Object থেকে ডেটা প্রাপ্তি
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

এখানে:

  • ObjectMapper Jackson এর একটি গুরুত্বপূর্ণ ক্লাস যা JSON কে Java Object-এ রূপান্তর করতে ব্যবহৃত হয়।
  • readValue মেথড JSON স্ট্রিংকে Person ক্লাসের অবজেক্টে রূপান্তর করেছে।

আউটপুট:

Name: John Doe
Age: 30

২. Gson ব্যবহার করে JSON থেকে Java Object রূপান্তর


Gson হল একটি লাইটওয়েট লাইব্রেরি যা JSON থেকে Java Object-এ রূপান্তর করতে ব্যবহৃত হয়। Gson সাধারণত ছোট এবং দ্রুত কাজ করার জন্য পরিচিত।

উদাহরণ:

ধরা যাক আমাদের একই Person ক্লাস আছে, এবং Gson লাইব্রেরি ব্যবহার করে JSON ডেটাকে Java Object-এ রূপান্তর করতে চাই।

import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {
        // JSON String
        String jsonString = "{\"name\": \"John Doe\", \"age\": 30}";

        // Gson ব্যবহার করে JSON থেকে Java Object-এ রূপান্তর
        Gson gson = new Gson();
        Person person = gson.fromJson(jsonString, Person.class);

        // Java Object থেকে ডেটা প্রাপ্তি
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

এখানে:

  • fromJson মেথড JSON স্ট্রিংকে Person ক্লাসের অবজেক্টে রূপান্তর করেছে।

আউটপুট:

Name: John Doe
Age: 30

JSON থেকে Java Object রূপান্তরের সময় কী কী লক্ষ্য রাখতে হবে?


  1. ডেটা টাইপ মেলানো: JSON এর key-value pair এর মান এবং Java Object এর ফিল্ড টাইপ সঠিকভাবে মেলানো দরকার। যেমন, যদি JSON এ "age": 30 থাকে, তবে Java Object-এ age ফিল্ডটি int টাইপ হতে হবে।
  2. Getter-Setter মেথড: JSON ডেটাকে Java Object-এ রূপান্তর করতে হলে Java ক্লাসে Getter এবং Setter মেথড থাকা প্রয়োজন, যাতে JSON থেকে মান গ্রহণ এবং সেট করা যায়।
  3. Nested Objects: যদি JSON এ nested objects থাকে, তাহলে Java Object-এ সেই nested ক্লাসের জন্য আলাদা ফিল্ড থাকা প্রয়োজন এবং সেগুলোর জন্য অতিরিক্ত @JsonProperty বা Gson মডিফায়ার ব্যবহার করা যেতে পারে।

৩. Nested JSON Objects থেকে Java Object রূপান্তর


ধরা যাক, আমাদের JSON ডেটাতে একটি nested অবজেক্ট রয়েছে:

{
  "name": "John Doe",
  "address": {
    "street": "123 Main St",
    "city": "New York"
  }
}

এখানে, "address" একটি nested JSON অবজেক্ট। এর Java ক্লাসে মাপিং করতে হবে।

Java ক্লাস:

public class Address {
    private String street;
    private String city;

    // Getter and Setter methods
    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

public class Person {
    private String name;
    private Address address;

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

JSON থেকে Java Object রূপান্তর:

import com.fasterxml.jackson.databind.ObjectMapper;

public class NestedJacksonExample {
    public static void main(String[] args) throws Exception {
        // JSON String
        String jsonString = "{\"name\": \"John Doe\", \"address\": {\"street\": \"123 Main St\", \"city\": \"New York\"}}";

        // Jackson ObjectMapper ব্যবহার করে JSON থেকে Java Object এ রূপান্তর
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(jsonString, Person.class);

        // Java Object থেকে nested Object ডেটা প্রাপ্তি
        System.out.println("Name: " + person.getName());
        System.out.println("Street: " + person.getAddress().getStreet());
        System.out.println("City: " + person.getAddress().getCity());
    }
}

আউটপুট:

Name: John Doe
Street: 123 Main St
City: New York

সারাংশ


JSON থেকে Java Object-এ রূপান্তর (Deserialization) হল একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটাকে Java Object-এ রূপান্তর করার মাধ্যমে ডেটা প্রক্রিয়াকরণ সহজ করে। Jackson এবং Gson দুটি জনপ্রিয় লাইব্রেরি, যা JSON থেকে Java Object রূপান্তর করতে ব্যবহৃত হয়। এই লাইব্রেরিগুলি অত্যন্ত কার্যকরী এবং সহজভাবে JSON ডেটার সাথে কাজ করার সুযোগ দেয়।

Content added By
Promotion

Are you sure to start over?

Loading...